package cn.bearspark.api.service.main;

import cn.bearspark.api.vo.main.user.*;
import cn.bearspark.framework.web.starter.vo.ResponseVO;

/**
 * 用户模块的相关服务接口
 *
 * @author f
 */
public interface UserService {

    /**
     * 给指定手机号发送短信验证码
     *
     * @param sendReqVO 指定的手机号
     * @return 发送验证码的响应对象
     */
    ResponseVO<Object> send(SendReqVO sendReqVO);

    /**
     * 验证验证码
     *
     * @param verifyReqVO 验证的请求对象
     * @return 验证的响应对象
     */
    ResponseVO<Object> verify(VerifyReqVO verifyReqVO);

    /**
     * 初始化密码
     *
     * @param passwordReqVO 初始化密码的请求对象
     * @return 初始化密码的响应对象
     */
    ResponseVO<Object> initPassword(PasswordReqVO passwordReqVO);

    /**
     * 修改密码
     *
     * @param passwordReqVO 修改密码的请求对象
     * @return 修改密码的响应对象
     */
    ResponseVO<Object> modifyPassword(PasswordReqVO passwordReqVO);

    /**
     * 用户登录
     *
     * @param loginReqVO 登录请求的对象
     * @return 用户登录的响应对象
     */
    ResponseVO<LoginRespVO> login(LoginReqVO loginReqVO);
}
